package com.liuche.homechat.common.user.service;

import com.liuche.homechat.common.common.model.dto.user.SummeryInfoDTO;
import com.liuche.homechat.common.user.domain.entity.User;
import com.liuche.homechat.common.user.domain.vo.req.user.BlackReq;
import com.liuche.homechat.common.user.domain.vo.req.user.ModifyNameReq;
import com.liuche.homechat.common.user.domain.vo.req.user.WearingBadgeReq;
import com.liuche.homechat.common.user.domain.vo.resp.user.BadgeResp;
import com.liuche.homechat.common.user.domain.vo.resp.user.UserInfoResp;

import java.util.List;
import java.util.Map;
import java.util.Set;

public interface UserService {
    /**
     * 根据用户 openID 查询用户
     * @param openID
     * @return
     */
    User queryUserByOpenID(String openID);

    /**
     * 保存用户信息
     * @param openID
     */
    void addUser(String openID);

    /**
     * 展示用户信息
     * @param uid
     * @return
     */
    UserInfoResp getUserInfo(Long uid);

//    List<SummeryInfoDTO> getSummeryUserInfo(SummeryInfoReq req);

    /**
     * 修改用户信息
     * @param uid
     * @param req
     */
    void modifyName(Long uid, ModifyNameReq req);

    /**
     * 用户徽章列表
     * @param uid
     * @return
     */
    List<BadgeResp> badges(Long uid);

    /**
     * 用户更改佩戴徽章
     * @param uid
     * @param req
     */
    void wearingBadge(Long uid, WearingBadgeReq req);

    void pushBlack(BlackReq req);
}
